// 这种链式调用是柯里化的一种形式，没有减少参数数量，只是延迟了处理

function add (num) {
  let ans = num;
  const added = (num) => {
    ans += num;
    // 计算了结果，但继续返回这个函数
    return added;
  };

  added.getValue = function () {
    return ans;
  }

  return added;
}

// 返回的一直是函数，给这个函数挂一个属性，获取其值
console.log(add(1)(2)(3).getValue());